perm filename CALLTF.PAS[S1,ALS] blob sn#465797 filedate 1979-08-08 generic text, type T, neo UTF8
(*$A+,D+*)
program TreeCall(Output);

const	MAXDEPTH = 5;

type	Depth = 1..MAXDEPTH;

var	CallDepth :  Depth;
	NodeNumber :  integer;
	LastF, F, NextF : integer;

procedure Heading;
   begin
   write('    Depth Node Fibonacci  Depth Node Fibonacci  ');
   writeln('Depth Node Fibonacci');
   end;

function ReturnVal : integer;
   begin
   ReturnVal := LastF + F;	(* Generates FIBONACCI numbers*)
   end;

procedure Branch(CallDepth :  Depth);
   begin
   write(CallDepth : 9, NodeNumber : 4,  F : 14);
   NextF := ReturnVal;
   LastF := F;
   F := NextF;
   if NodeNumber mod 3 = 0 then writeln;
   NodeNumber := NodeNumber + 1;
   if CallDepth < MAXDEPTH then
      begin
      Branch(CallDepth + 1);
      Branch(CallDepth + 1);
      end;
   end;

begin
CallDepth := 1;
NodeNumber := 1;
LastF := 0;
F := 1;
NextF := 1;
Heading;
Branch(CallDepth);
writeln;
end.